#ifndef MY_SYS_UART_H_
#define MY_SYS_UART_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/uart.h"


/*****************************************************************************
功能描述 : 环形接收缓冲区长度为 2 × BUF_SIZE
			my_uart_recv_data函数单次最大接收长度为 BUF_SIZE
修改作者 ：高解放
修改时间 ：2022-1-6
*****************************************************************************/
#define BUF_SIZE (1024)

/*****************************************************************************
类型名称 : hl_uart_config_t
功能描述 : 串口初始化参数
修改作者 ：高解放
修改时间 ：2022-1-6
*****************************************************************************/
typedef struct{
	uart_port_t uart_num;  /*!< 串口号：UART_NUM_0/UART_NUM_1/UART_NUM_2.*/
	int bate;  
}hl_uart_config_t;

/*****************************************************************************
函数名称 : my_uart_init
功能描述 : 串口初始化API
输入参数 : 初始化参数结构体
返回参数 : ESP_FAIL：初始化失败 ESP_OK：初始化成功
使用说明 : 无
修改作者 ：高解放
修改时间 ：2022-1-6
*****************************************************************************/
int my_uart_init(hl_uart_config_t uart_init_params);

/*****************************************************************************
函数名称 : my_uart_deinit
功能描述 : 串口释放API
输入参数 : 需要释放的串口号
返回参数 : ESP_FAIL：释放失败 ESP_OK：释放成功
使用说明 : 无
修改作者 ：高解放
修改时间 ：2022-1-6
*****************************************************************************/
int my_uart_deinit(uart_port_t uart_num);

/*****************************************************************************
函数名称 : my_uart_send_data
功能描述 : 串口发送API
输入参数 : uart_num：串口号，*data：发送数据指针，len：需要发送的数据长度
返回参数 : ESP_FAIL：发送失败 ESP_OK：发送成功
使用说明 : 无
修改作者 ：高解放
修改时间 ：2022-1-6
*****************************************************************************/
int my_uart_send_data(uart_port_t uart_num,uint8_t *data,size_t len);

/*****************************************************************************
函数名称 : my_uart_recv_data
功能描述 : 串口接收API
输入参数 : uart_num：串口号,*data：接收数据指针,*len:接收到的数据长度指针
返回参数 : ESP_FAIL：接收失败 ESP_OK：接收成功
使用说明 : 单次最大接收长度为 BUF_SIZE
修改作者 ：高解放
修改时间 ：2022-1-6
*****************************************************************************/
int my_uart_recv_data(uart_port_t uart_num,uint8_t *data,int *len);

#endif
